Time division multiplexing (TDM) has been used as a protocol for serial interface with coders/decoders (codecs) for an extended period of time. In a TDM system, each device (in this case, each codec) connected to the system is assigned a particular time slot within a frame through which it communicates and exchanges data with a controller. The arrangement of the time slots in the frame is called a frame structure. An advantage for using TDM is that a single serial connection can be shared among several codecs, negating the need to provide a separate connection between each of the codecs and the controller. Another advantage of TDM is its relative ease of implementation. Techniques such as frequency division multiplexing (FDM) and code division multiplexing (CDM) are more complex than TDM and require greater amounts of hardware and software to implement.
However, current implementations of TDM protocols for serial interfacing between codecs and the controller are quite inflexible. By its very nature, TDM is very rigid. A time slot is typically assigned to a codec and the codec can only communicate during its assigned time slot. Changes to the total number of codecs used in the system would necessitate a change in the design of the TDM system because the TDM frame structure would require modification to support the larger (or smaller) number of codecs. In many systems, when the number of codecs in the system is reduced, then the time slots previously assigned to those codecs remain in the system (but will be idle) although they are no longer being used. This leads to wasting a significant amount of the available bandwidth in the serial connection.
An additional disadvantage due to the inflexibility of the typical TDM implementation is that the actual frame structure itself cannot be modified in order to provide greater bandwidth depending upon application requirements. For example, a typical TDM frame structure includes both data slots and control slots. The data slots are used to transmit data while the control slots are used to transmit control and program information. However, there are applications that require a continuous stream of data. The presence of the control slot results in additional overhead for the controller due to the need to service the commands in the control slots.
Another requirement of a TDM system is that every codec in the system be assigned a unique identifier, usually, a unique number. Each codec requires a unique identifier because the controller must be able to address individual codecs. In TDM systems where the number of codecs and time slots do not change, i.e., static systems, techniques used in the assignment of the unique identifiers have included physical address pins and software routines to write and store device identifiers for each device. The use of physical address pins makes the TDM system even more inflexible due to the physical pins while software routines consume valuable processing power because address translation is required each time a codec is addressed.
A need has therefore arisen for a TDM system that provides flexibility in the number of codecs supported, increase bandwidth usage, and a simple way to assign codec addresses without requiring additional hardware or software support.